package com.hjm.project.formalPos.formalPos.domain;

import java.util.Date;

import com.hjm.framework.aspectj.lang.annotation.Excel;
import com.hjm.framework.web.domain.BaseEntity;
import com.hjm.project.agentInfo.agentInfo.domain.AgentInfo;
import com.hjm.project.formalPos.branchPos.domain.BranchPos;
import com.hjm.project.merchantInfo.merchantInfo.domain.MerchantInfo;
import lombok.Getter;
import lombok.Setter;
import org.apache.commons.lang.builder.ToStringBuilder;
import org.apache.commons.lang.builder.ToStringStyle;

/**
 * POS终端信息对象 formal_pos
 *
 * @author LOVE
 * @date 2020-11-26
 */
public class FormalPos extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * 主键
     */
    private Long id;

    /**
     * 终端编号[本地]
     */
    @Excel(name = "POS编号")
    private String posno;

    /**
     * 机器号
     */
    @Excel(name = "SN编号")
    private String machineNum;

    /**
     * 服务商编号
     */
    @Excel(name = "终端所属代理编号")
    private String agentNum;

    @Excel(name = "终端所属代理名称")
    private String agentName;

    /**
     * 终端类型（0：传统终端  1：MPOS  2：智能终端 3：机构终端 4：电签终端）
     */
    @Excel(name = "终端类型", readConverterExp = "0=传统终端,4=电签终端")
    private Long posType;

    @Excel(name = "活动编号")
    private String actId;

    @Excel(name = "活动名称")
    private String actName;

    @Excel(name = "活动截止时间")
    private String actEnd;

    @Excel(name = "开通状态", readConverterExp = "0=未开通,1=已开通")
    private String isbound;

    @Excel(name = "是否激活", readConverterExp = "1=是,2=否")
    private String activate;

    @Getter
    @Excel(name = "是否伪激活", readConverterExp = "0=否,1=是")
    private String is_wei;

    //达标阶段
    @Excel(name = "达标阶段", readConverterExp = "-1=已过考核期,0=已达标,1=激活返现,2=一段达标,3=二段达标,4=三段达标,5=四段达标,6=五段达标,7=六段达标,8=七段达标")
    private Integer is_day_stage;


    private Integer achievementStage;

    @Excel(name = "达标日期")
    private String achievementDate;


    /**
     * 流量卡费
     */
    @Excel(name = "流量卡费")
    private Long simFee;

    /**
     * 预计流量卡扣费日期
     */
    @Excel(name = "流量费收取天数")
    private String simEnd;

    @Excel(name = "服务费")
    private String service_fee;

    @Excel(name = "服务费收取天数")
    private String service_end;


    //@Excel(name = "达标金额")
    private String achievementMoney;
    private String pos_version;

    //激活,达标信息
    //@Excel(name = "激活返现对象")
    private String actAgentNum;

    //@Excel(name = "达标返现对象")
    private String reachAgentNum;

    //  @Excel(name = "返现金额")
    private String returnMoney;

    @Excel(name = "购买人")
    private String buyerNum;

    /**
     * 终端来源
     */
    @Excel(name = "终端来源", readConverterExp = "1=划拨机,2=自购机")
    private String dqType;

    @Excel(name = "结算人姓名")
    private String screenName;

    /**
     * 商户编号
     */
    @Excel(name = "商户编号")
    private String merno;

    @Excel(name = "开通时间", dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date createdate;

    @Excel(name = "变更人")
    private String updateMan;               //


    @Getter
    private String ldMerno;

    /**
     * 业务员编号
     */
    private String smNum;

    /**
     * 销售员编号
     */
    private String saleNum;

    /**
     * 所属营业部
     */
    private String soNum;

    /**
     * 终端状态 0：启用 1：关停 2：绑定未开通
     */
    private Long status;

    /**
     * 添加人
     */
    private String createman;

    /**
     * 备注
     */
    private String note;

    /**
     * 0 未删除（可见） 1 删除 （不可见）
     */
    private Long isdetele;

    /**
     * 绑定类型  1 首次绑定 2 增机
     */
    private Long bindType;


    /**
     * 终端绑定查询接口  是否返回 0-是  1-否
     */
    private Long isB001;

    /**
     * 1 新用户 2 存量用户 3 高收益用用户
     */
    private Long isopen;


    /**
     * 电签B版应扣费日期 绑定日期 + 1个月(yyyy-MM-dd)
     */
    private String kcDate;

    /**
     * 钱宝9号终端活动结束时间
     */
    private String endtime;

    /**
     * 是否扣除流量卡费 0 未扣（无参与流量卡费用终端提示未 无抵扣） 1 已扣
     */
    private Long isKcsim;


    private MerchantInfo merchantInfo;
    private AgentInfo agentInfo;
    private BranchPos branchPos;

    public String getPos_version() {
        return pos_version;
    }

    public void setPos_version(String pos_version) {
        this.pos_version = pos_version;
    }

    public Integer getIs_day_stage() {
        return is_day_stage;
    }

    public void setIs_day_stage(Integer is_day_stage) {
        this.is_day_stage = is_day_stage;
    }

    private String isstandard;


    //@Excel(name = "激活时间")
    private String activateDate;

    private String dbDate;


    public void setIs_wei(String is_wei) {
        this.is_wei = is_wei;
    }

    private String showLinkphone;

    private String addDate;

    private String merStatus;

    private String mposnum;

    private String loginAgent;

    private String recurrenceCycle; //达标周期 0日返 1 月返

    @Getter
    @Setter
    private String mernoChannel;//渠道商户号
    @Getter
    @Setter
    private String qbPosno;//渠道SN号


    private String returnDate;             //返现日期
    private String directlyUnderAgentno;   //终端所属代理编号

    private String buyMoney;               //采购人奖励
    private String proYlId;               //团长编号

    @Getter
    private String manuNum;

    public void setLdMerno(String ldMerno) {
        this.ldMerno = ldMerno;
    }

    public void setManuNum(String manuNum) {
        this.manuNum = manuNum;
    }

    public String getProYlId() {
        return proYlId;
    }

    public void setProYlId(String proYlId) {
        this.proYlId = proYlId;
    }

    public String getBuyMoney() {
        return buyMoney;
    }

    public void setBuyMoney(String buyMoney) {
        this.buyMoney = buyMoney;
    }

    public String getUpdateMan() {
        return updateMan;
    }

    public void setUpdateMan(String updateMan) {
        this.updateMan = updateMan;
    }

    public String getDirectlyUnderAgentno() {
        return directlyUnderAgentno;
    }

    public void setDirectlyUnderAgentno(String directlyUnderAgentno) {
        this.directlyUnderAgentno = directlyUnderAgentno;
    }

    public String getReturnMoney() {
        return returnMoney;
    }

    public void setReturnMoney(String returnMoney) {
        this.returnMoney = returnMoney;
    }

    public String getReturnDate() {
        return returnDate;
    }

    public void setReturnDate(String returnDate) {
        this.returnDate = returnDate;
    }

    public String getAchievementMoney() {
        return achievementMoney;
    }

    public void setAchievementMoney(String achievementMoney) {
        this.achievementMoney = achievementMoney;
    }

    public String getActAgentNum() {
        return actAgentNum;
    }

    public void setActAgentNum(String actAgentNum) {
        this.actAgentNum = actAgentNum;
    }

    public String getReachAgentNum() {
        return reachAgentNum;
    }

    public void setReachAgentNum(String reachAgentNum) {
        this.reachAgentNum = reachAgentNum;
    }

    public String getBuyerNum() {
        return buyerNum;
    }

    public void setBuyerNum(String buyerNum) {
        this.buyerNum = buyerNum;
    }


    public String getRecurrenceCycle() {
        return recurrenceCycle;
    }

    public void setRecurrenceCycle(String recurrenceCycle) {
        this.recurrenceCycle = recurrenceCycle;
    }

    public String getAchievementDate() {
        return achievementDate;
    }

    public void setAchievementDate(String achievementDate) {
        this.achievementDate = achievementDate;
    }

    public Integer getAchievementStage() {
        return achievementStage;
    }

    public void setAchievementStage(Integer achievementStage) {
        this.achievementStage = achievementStage;
    }

    public String getActName() {
        return actName;
    }

    public void setActName(String actName) {
        this.actName = actName;
    }

    public String getIsstandard() {
        return isstandard;
    }

    public void setIsstandard(String isstandard) {
        this.isstandard = isstandard;
    }

    public String getScreenName() {
        return screenName;
    }

    public void setScreenName(String screenName) {
        this.screenName = screenName;
    }

    public String getActEnd() {
        return actEnd;
    }

    public void setActEnd(String actEnd) {
        this.actEnd = actEnd;
    }

    public String getActivateDate() {
        return activateDate;
    }

    public void setActivateDate(String activateDate) {
        this.activateDate = activateDate;
    }

    public String getDbDate() {
        return dbDate;
    }

    public void setDbDate(String dbDate) {
        this.dbDate = dbDate;
    }

    public String getIsbound() {
        return isbound;
    }

    public void setIsbound(String isbound) {
        this.isbound = isbound;
    }

    public String getActivate() {
        return activate;
    }

    public void setActivate(String activate) {
        this.activate = activate;
    }

    public String getShowLinkphone() {
        return showLinkphone;
    }

    public void setShowLinkphone(String showLinkphone) {
        this.showLinkphone = showLinkphone;
    }

    public String getAddDate() {
        return addDate;
    }

    public void setAddDate(String addDate) {
        this.addDate = addDate;
    }

    public String getMerStatus() {
        return merStatus;
    }

    public void setMerStatus(String merStatus) {
        this.merStatus = merStatus;
    }

    public String getActId() {
        return actId;
    }

    public void setActId(String actId) {
        this.actId = actId;
    }

    public String getMposnum() {
        return mposnum;
    }

    public void setMposnum(String mposnum) {
        this.mposnum = mposnum;
    }

    public String getAgentName() {
        return agentName;
    }

    public void setAgentName(String agentName) {
        this.agentName = agentName;
    }

    public String getLoginAgent() {
        return loginAgent;
    }

    public void setLoginAgent(String loginAgent) {
        this.loginAgent = loginAgent;
    }

    public MerchantInfo getMerchantInfo() {
        if (null == merchantInfo) {
            merchantInfo = new MerchantInfo();
        }
        return merchantInfo;
    }

    public void setMerchantInfo(MerchantInfo merchantInfo) {
        this.merchantInfo = merchantInfo;
    }

    public AgentInfo getAgentInfo() {
        if (null == agentInfo) {
            agentInfo = new AgentInfo();
        }
        return agentInfo;
    }

    public void setAgentInfo(AgentInfo agentInfo) {
        this.agentInfo = agentInfo;
    }

    public BranchPos getBranchPos() {
        if (null == branchPos) {
            branchPos = new BranchPos();
        }
        return branchPos;
    }

    public void setBranchPos(BranchPos branchPos) {
        this.branchPos = branchPos;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public Long getId() {
        return id;
    }

    public void setPosno(String posno) {
        this.posno = posno;
    }

    public String getPosno() {
        return posno;
    }

    public void setPosType(Long posType) {
        this.posType = posType;
    }

    public Long getPosType() {
        return posType;
    }

    public void setMerno(String merno) {
        this.merno = merno;
    }

    public String getMerno() {
        return merno;
    }

    public void setSmNum(String smNum) {
        this.smNum = smNum;
    }

    public String getSmNum() {
        return smNum;
    }

    public void setAgentNum(String agentNum) {
        this.agentNum = agentNum;
    }

    public String getAgentNum() {
        return agentNum;
    }

    public void setSaleNum(String saleNum) {
        this.saleNum = saleNum;
    }

    public String getSaleNum() {
        return saleNum;
    }

    public String getSoNum() {
        return soNum;
    }

    public void setSoNum(String soNum) {
        this.soNum = soNum;
    }

    public void setStatus(Long status) {
        this.status = status;
    }

    public Long getStatus() {
        return status;
    }

    public void setCreateman(String createman) {
        this.createman = createman;
    }

    public String getCreateman() {
        return createman;
    }

    public void setCreatedate(Date createdate) {
        this.createdate = createdate;
    }

    public Date getCreatedate() {
        return createdate;
    }

    public void setNote(String note) {
        this.note = note;
    }

    public String getNote() {
        return note;
    }

    public void setIsdetele(Long isdetele) {
        this.isdetele = isdetele;
    }

    public Long getIsdetele() {
        return isdetele;
    }

    public void setBindType(Long bindType) {
        this.bindType = bindType;
    }

    public Long getBindType() {
        return bindType;
    }

    public void setMachineNum(String machineNum) {
        this.machineNum = machineNum;
    }

    public String getMachineNum() {
        return machineNum;
    }

    public void setIsB001(Long isB001) {
        this.isB001 = isB001;
    }

    public Long getIsB001() {
        return isB001;
    }

    public void setIsopen(Long isopen) {
        this.isopen = isopen;
    }

    public Long getIsopen() {
        return isopen;
    }

    public void setSimFee(Long simFee) {
        this.simFee = simFee;
    }

    public Long getSimFee() {
        return simFee;
    }

    public void setDqType(String dqType) {
        this.dqType = dqType;
    }

    public String getDqType() {
        return dqType;
    }

    public void setKcDate(String kcDate) {
        this.kcDate = kcDate;
    }

    public String getKcDate() {
        return kcDate;
    }

    public void setEndtime(String endtime) {
        this.endtime = endtime;
    }

    public String getEndtime() {
        return endtime;
    }

    public void setIsKcsim(Long isKcsim) {
        this.isKcsim = isKcsim;
    }

    public Long getIsKcsim() {
        return isKcsim;
    }

    public void setSimEnd(String simEnd) {
        this.simEnd = simEnd;
    }

    public String getSimEnd() {
        return simEnd;
    }


    public String getService_fee() {
        return service_fee;
    }

    public void setService_fee(String service_fee) {
        this.service_fee = service_fee;
    }

    public String getService_end() {
        return service_end;
    }

    public void setService_end(String service_end) {
        this.service_end = service_end;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("id", getId())
                .append("posno", getPosno())
                .append("posType", getPosType())
                .append("merno", getMerno())
                .append("smNum", getSmNum())
                .append("agentNum", getAgentNum())
                .append("saleNum", getSaleNum())
                .append("soNum", getSoNum())
                .append("status", getStatus())
                .append("createman", getCreateman())
                .append("createdate", getCreatedate())
                .append("note", getNote())
                .append("isdetele", getIsdetele())
                .append("bindType", getBindType())
                .append("machineNum", getMachineNum())
                .append("isB001", getIsB001())
                .append("isopen", getIsopen())
                .append("simFee", getSimFee())
                .append("dqType", getDqType())
                .append("kcDate", getKcDate())
                .append("endtime", getEndtime())
                .append("isKcsim", getIsKcsim())
                .append("simEnd", getSimEnd())
                .append("merchantInfo", getMerchantInfo().toString())
                .append("agentInfo", getAgentInfo().toString())
                .append("branchPos", getBranchPos().toString())
                .toString();
    }
}
